package com.yidu.dao;

import java.util.List;
import java.util.Map;

import com.yidu.model.SnAudit;
import com.yidu.model.SnComSaDetail;

public interface SnAuditMapper {
    int deleteByPrimaryKey(String auId);

    int insert(SnAudit record);

    int insertSelective(SnAudit record);

    SnAudit selectByPrimaryKey(String auId);

    int updateByPrimaryKeySelective(SnAudit record);

    int updateByPrimaryKey(SnAudit record);

	List<SnAudit> snaudit(Map<String, Object> map1);
	
	/**
	 * 查询财务生产审核所有
	 * @param maps 分页 条件
	 * @return 生产审核model集合
	 */
	List<SnAudit> findProAll(Map<String, Object> maps);
	/**
	 * 查询分公司审核所有
	 * @param maps 分页 条件
	 * @return 生产审核model集合
	 */	
	List<SnAudit> findSnBranchAll(Map<String,Object> maps);
	/**
	 * 查询财务生产审核行数
	 * @param maps 条件
	 * @return 行数
	 */
	int findProCount(Map<String, Object> maps);
	/**
	 * 查询生产审核审核记录
	 * @param maps 分页 条件
	 * @return 生产审核model集合
	 */
	List<SnAudit> ProQuery(Map<String, Object> maps);
	/**
	 * 查询生产审核记录行数
	 * @param maps 条件
	 * @return 行数
	 */
	int ProQueryCount(Map<String, Object> maps);
	/**
	 * 查询生产总公司审核所有
	 * @param maps 分页 条件
	 * @return 生产审核model集合
	 */
	List<SnAudit> findProAllSum(Map<String, Object> maps);
	/**
	 * 查询生产总公司审核记录行数
	 * @param maps 条件
	 * @return 行数
	 */
	int findProCountSum(Map<String, Object> maps);
	/**
	 * 查询材料采购财务审核所有
	 * @param maps 分页 条件
	 * @return 生产审核model集合
	 */
	List<Map<String, Object>> chaseAuditAll(Map<String, Object> maps);
	/**
	 *  查询材料采购财务审核行数
	 * @param maps 条件
	 * @return 行数
	 */
	int chaseAuditCount(Map<String, Object> maps);
	/**
	 * 查询采购材料总经理审核所有
	 * @param maps 分页 条件
	 * @return 生产审核model集合
	 */
	List<Map<String, Object>> chaseAuditSumAll(Map<String, Object> maps);
	/**
	 * 查询 采购材料总经理审核记录行数
	 * @param maps 条件
	 * @return 行数
	 */
	int chaseAuditCountSum(Map<String, Object> maps);
	
	/**
	 * 查询零售退货财务审核所有
	 * @param maps 分页 条件
	 * @return 零售退货审核model集合
	 */
	List<Map<String, Object>> retailAuditAll(Map<String, Object> maps);
	/**
	 * 查询零售退货财务审核记录行数
	 * @param maps 条件
	 * @return 行数
	 */
	int retailAuditCount(Map<String, Object> maps);
	/**
	 * 根据审核id查询零售id
	 * @param auId 审核id
	 * @return 零售id
	 */
	String findRetailAuId(String auId);
	/**
	 * 查询零售退货总经理审核所有
	 * @param maps 分页 条件
	 * @return 零售退货审核model集合
	 */
	List<Map<String, Object>> retailAuditAllSum(Map<String, Object> maps);
	/**
	 * 查询零售退货总经理审核记录行数
	 * @param maps 条件
	 * @return 行数
	 */
	int retailAuditCountSum(Map<String, Object> maps);
	
	/**
	 * 条件查询所有批发审核
	 * @param maps map对象
	 * @return list 批发审核集合
	 * @author ZhuYiFan
	 */
	List<SnAudit> findWholesale(Map<String, Object> maps);
	
	/**
	 * 条件查询批发审核行数
	 * @param maps map对象
	 * @return 批发审核行数
	 * @author ZhuYiFan
	 */
	int findWholesaleCount(Map<String, Object> maps);
	
	/**
	 * 批发审核
	 * @param snAudit 审核对象
	 * @return 1 成功 0 失败
	 * @author ZhuYiFan
	 */
	int auditWholesale(SnAudit snAudit);
	
	/**
	 * 增加批发退货审核
	 * @param snAudit 审核对象
	 * @return rows 0 失败1成功
	 */
	int insertReturn(SnAudit snAudit);
	
	/**
	 * 查询所有批发退货审核
	 * @param maps  map对象
	 * @return list 批发退货审核集合
	 */
	List<SnAudit> findReturn(Map<String, Object> maps);

	/**
	 * 查询所有批发退货审核行数
	 * @param maps map对象
	 * @return 总行数
	 */
	int findReturnCount(Map<String, Object> maps);
	
	/**
	 * 批发退货订单审核的方法
	 * @param snAudit 审核对象
	 * @return 0失败1成功
	 */
	int returnAudit(SnAudit snAudit);
	
	/**
	 * 根据批发订单ID查询退货审核详情
	 * @param whId 批发订单ID
	 * @return 批发审核明细
	 */
	List<SnComSaDetail> findAuditDetail(String whId);

	/**
	 * 根据批发订单ID查询退货审核详情总行数
	 * @param whId 批发订单ID
	 * @return 批发审核明细总行数
	 */
	int findAuditDetailCount(String whId);
	
}